PHP - Error PhP/MySql -> Where

 
Vista:

Error PhP/MySql -> Where

Publicado por Alf (2 intervenciones) el 15/05/2005 14:22:51
ESTE ES MI CODIGO PHP
*****************************
$usr es una variable alfanumerica de 3 caracteres que tiene el usuario
$dbh es el identificador de la conexion

23 - $consulta = 'SELECT * FROM claves WHERE usuario = $usr' ;
24 - $resultado = mysql_query($consulta, $dbh);
25 - // $gclave = mysql_fetch_array($resultado) ;
26 - while($row = mysql_fetch_array($resultado))
27 - {
28 - echo $row["clave"];
29 - echo $row["usuario"];
30 - echo $row["activo"];
31 - echo "\n" ;
32 - }

ESTE ES EL ERROR QUE GENERA
***************************************
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\FoxServ\www\minie\validar.php on line 26

El programa es tan simple que no entiendo ni veo cual es el problema si alguien puede ayudarme lo agradeceré
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error PhP/MySql -> Where

Publicado por Hernan (5 intervenciones) el 16/05/2005 03:44:19
Aparentemente mysql_query() te esta generando error, y por eso no devuelve un resultset valido... yo te recomiendo que empieces por insertar este codigo despues de la linea 24 (el mysql_query), para saber que error estas teniendo:

print "error: " . mysql_error($dbh);

la ultima vez que me paso algo asi, fue porque me falto seleccionar la base de datos... es decir, esta linea:

mysql_select_db("NOMBRE_BASE",$dbh);

saludos,
Hernan

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error PhP/MySql -> Where

Publicado por Alf (2 intervenciones) el 16/05/2005 12:55:47
Ya habia hecho eso y la descripcion del error es mas amplia pero a la vez es mas extraña, este es el mensaje de error ampliado:
* Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\FoxServ\www\minie\validar.php on line 25
* Este usuario no ha sido asignado
* Unknown column 'ALF' in 'where clause'

En la tabla de la base de datos no hay definida ninguna columna 'ALF', ese es el contenido del campo usuario de un registro de la tabla. Te juro que cada vez estoy mas confundido.
La conexion a la DB es correcta y la seleccion también. La verdad no se que es.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error PhP/MySql -> Where

Publicado por Hernan (5 intervenciones) el 17/05/2005 04:59:43
te esta tirando ese error justamente porque esta parseando mal el sql...

Primero, como dice ArthasMX, agregale comillas simples al valor de $usr y cambia tus comillas simples por dobles para que quede asi:

$consulta = "SELECT * FROM claves WHERE usuario = '$usr' ";

porque haces esto? porque $usr puede contener un espacio y eso para la base de datos va a ser un separador.. al utilizar las comillas, le estas diciendo que todo es valor.. igual que haces con php.. las cadenas de texto van entre comillas.. en sql es igual..

segundo.. si eso te sigue tirando error, es probable que tengas una comilla simple dentro de $usr, por lo que deberias escaparla primero convirtiendola en 2 comillas simples.. asi:

$usr=str_replace("'","''",$usr);

y listo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No entiendo

Publicado por ArthasMX (11 intervenciones) el 16/05/2005 16:18:07
Como puede darte error en la linea 25 si esta marcada como comentario ??
"//" ??

Una cosilla, prueba cambiar la linea 23, a: $consulta = "SELECT * FROM claves WHERE usuario=$usr" ;
Osea, quitale la comilla simple: ' y cambialas por dobles: "
Otra....si no funciona, prueba ponerle comilla simple a $usr, quedando:
$consulta = "SELECT * FROM claves WHERE usuario='$usr' ";

Suerte..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar